package com.ruin.tech.ahri.service;

import com.ruin.tech.ahri.model.dto.User;
import com.ruin.tech.ahri.model.dto.WeiXinAuthDTO;
import com.ruin.tech.ahri.model.vo.LoginInfoVO;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import java.io.IOException;
import java.util.List;

/**
 * 用户业务接口
 * <p>
 *
 * @author xulf
 * @date 2019-07-31 11:09
 */
public interface IUserService {

    /**
    * @description: 登陆查询登陆用户信息
    * @param: loginName,password
    * @return: java.util.List<com.ruin.tech.ahri.model.vo.LoginInfoVO>
    * @author: ruin
    * @date: 2019/11/20
    */
    LoginInfoVO login(String loginName,String password);
    
    /**
    * @description: 注册接口
    * @param: user
    * @return: void
    * @author: ruin
    * @date: 2019/11/22
    */
    void register(User user);

    /**
     * @description: 通过实体对象中的四个唯一主键查询用户信息
     * @param: user
     * @return: void
     * @author: ruin
     * @date: 2019/11/22
     */
    User findUserByUniqueKey(User record);
    
    /**
    * @description: 更新用户信息，通过用户中四个唯一主键更新用户信息
    * @param: [user]
    * @return: void
    * @author: ruin
    * @date: 2019/12/25
    */
    void updateUserByUniqueKey(User user);
    
    /**
    * @description: 微信授权登陆更新或插入微信授权登陆信息
    * @param: [weiXinAuthDTO]
    * @return: java.lang.String
    * @author: ruin
    * @date: 2020/1/14
    */
    User insertOrUpdateByOpenid(WeiXinAuthDTO weiXinAuthDTO);

    /**
     * @description: 微信授权登陆更新或插入微信授权登陆信息
     * @param: [weiXinAuthDTO]
     * @return: java.lang.String
     * @author: ruin
     * @date: 2020/1/14
     */
    User insertOrUpdateBySessionId(WeiXinAuthDTO weiXinAuthDTO);
}
